package test3.bit;

/**
 * 693. 交替位二进制数
 * 给定一个正整数，检查它的二进制表示是否总是 0、1 交替出现：换句话说，就是二进制表示中相邻两位的数字永不相同。
 */
public class HasAlternatingBits {
    public static void main(String[] args) {
        boolean b = new HasAlternatingBits().hasAlternatingBits(5);
        System.out.println(b);
    }

    public boolean hasAlternatingBits(int n) {
        boolean b = (n & 1) == 1 ? true : false;
        while (n != 0) {
            int temp = n & 1;
            if (temp == 1 && b) {
                b = false;
                n >>= 1;
                continue;
            }
            if (temp == 0 && !b) {
                b = true;
                n >>= 1;
                continue;
            }
            return false;
        }
        return true;
    }
}
